package com.copa.l217;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Objects;

/**
 * @author copa
 * @createDate 2022-05-30 12:13
 * @function 字典法（HashMap）
 */
public class Test1 {

    public boolean containsDuplicate(int[] nums) {
        HashMap<Integer, Boolean> hashMap = new HashMap<>();
        for (int num : nums) {
            if (Objects.nonNull(hashMap.get(num))) {
                // 若hashmap存在元素即存在重复元素
                return true;
            }
            hashMap.put(num, true);
        }
        // 遍历过后仍没发现重复元素
        return false;
    }

    // 下面的自测可以，但是超出时间限制...leetcode那里过不了...
//    public boolean containsDuplicate(int[] nums) {
//        ArrayList<Integer> list = new ArrayList<>();
//        for (int num : nums) {
//            if (list.contains(num)) {
//                return true;
//            }
//            list.add(num);
//        }
//        return false;
//    }

    public static void main(String[] args) {
        int[] nums = {1,2,3,1};
        System.out.println(new Test1().containsDuplicate(nums));
    }
}
